package com.sky.service;

import com.sky.dto.MaterialTemplateDTO;
import com.sky.dto.MaterialTemplatePageQueryDTO;
import com.sky.entity.MaterialTemplate;
import com.sky.result.PageResult;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 材料模板服务接口
 */
public interface MaterialTemplateService {

    /**
     * 新增材料模板
     * @param materialTemplateDTO 材料模板DTO
     */
    void add(MaterialTemplateDTO materialTemplateDTO);

    /**
     * 修改材料模板
     * @param materialTemplateDTO 材料模板DTO
     */
    void update(MaterialTemplateDTO materialTemplateDTO);

    /**
     * 删除材料模板
     * @param id 材料模板ID
     */
    void delete(Long id);

    /**
     * 批量删除材料模板
     * @param ids ID列表
     */
    void batchDelete(List<Long> ids);

    /**
     * 分页查询材料模板
     * @param queryDTO 查询条件
     * @return 分页结果
     */
    PageResult page(MaterialTemplatePageQueryDTO queryDTO);

    /**
     * 根据ID查询材料模板
     * @param id 材料模板ID
     * @return 材料模板
     */
    MaterialTemplate getById(Long id);

    /**
     * 获取所有启用的材料模板
     * @return 材料模板列表
     */
    List<MaterialTemplate> getAllEnabled();

    /**
     * 更新材料模板状态
     * @param id 材料模板ID
     * @param status 状态
     */
    void updateStatus(Long id, Integer status);

    /**
     * 上传材料图标
     * @param file 图片文件
     * @return 图片URL
     */
    String uploadIcon(MultipartFile file);
}
